﻿
namespace SeedObject
{
    using Serializable = System.SerializableAttribute;
    using XmlIgnoreAttribute = System.Xml.Serialization.XmlIgnoreAttribute;
    [Serializable]
    public abstract class Func<TReturn, TContext> : Seed, IContext<TContext>
        where TContext : ISeed
    {
        public abstract TReturn Run();
        internal TReturn Result;
        private TContext _Context;
        [XmlIgnoreAttribute]
        public TContext Context
        {
            get 
            {
                return _Context; 
            }
            set
            {
                _Context = value;
            }

        }
    }
}
